/**
 * 
 */
package com.sunwayhorizo.health.business.clinic.emr.template;

import java.util.List;

import javax.ejb.Local;

import com.sunwayhorizo.health.business.dto.DictionaryDTO;
import com.sunwayhorizo.health.business.dto.ResultsDTO;
import com.sunwayhorizo.health.business.dto.clinic.emr.template.ClinicLibraryDTO;
import com.sunwayhorizo.health.business.dto.registries.DepartmentDTO;
import com.sunwayhorizo.health.hl7.common.Hl7Exception;

/**
 * @ClassName ClinicLibraryManagerLocal <br>
 * @PackageName com.sunwayhorizo.health.business.clinic.emr.template <br>
 * @Description 诊疗库管理 <br>
 * @Author jinzw <br>
 * @Date 2010-12-31 <br>
 * @Version 1.0 <br>
 * @ModifiedDesc <br>
 * @ModifiedDate <br>
 * @ModifiedBy <br>
 * @Email tanll@sunwaysoft.com.cn <br>
 * @Copyright 2010-2020 北京三维海容 All Rights Reserved. <br>
 */
@Local
public interface ClinicLibraryManagerLocal {
   
	/**
	 * 新建诊疗库
	 * @param clinicLibraryDTO
	 * @return
	 * @throws Hl7Exception
	 */
	public ResultsDTO newClinicLibrary(ClinicLibraryDTO clinicLibraryDTO) throws Hl7Exception; 
	
    /**
     * 删除诊疗库，这里只做删除一条记录的处理
     * @param clinicLibIds
     * @return
     * @throws Hl7Exception
     */
	@SuppressWarnings("rawtypes")
	public ResultsDTO delClinicLibrary(List clinicLibIds) throws Hl7Exception;
	
	/**
	 * 更新诊疗库
	 * @param clinicLibraryDTO
	 * @return
	 * @throws Hl7Exception
	 */
	public ResultsDTO updateClinicLibrary(ClinicLibraryDTO clinicLibraryDTO) throws Hl7Exception;
	
	/**
	 * 获取某诊疗类别下某科室的诊疗库列表
	 * 不包含二进制数据
	 * @param dictionaryDTO
	 * @param departmentDTO
	 * @return
	 * @throws Hl7Exception
	 */
	public ResultsDTO findClinicLibList(DictionaryDTO dictionaryDTO, DepartmentDTO departmentDTO) throws Hl7Exception;
	
	/**
	 * 分页获取某诊疗类别下某科室的诊疗库列表
	 * 不包含二进制数据
	 * @param dictionaryDTO 诊疗库分类
	 * @param departmentDTO 部门
	 * @param currentPage 当前页
	 * @param pageSize 每页显示的数量
	 * @return
	 * @throws Hl7Exception
	 */
	public ResultsDTO findClinicLibList(DictionaryDTO dictionaryDTO, DepartmentDTO departmentDTO,int currentPage,int pageSize) throws Hl7Exception;
	
	/**
	 * 获取单一诊疗库的所有内容
	 * 包含二进制数据
	 * @param clinicLibId
	 * @return
	 * @throws Hl7Exception
	 */
	public ResultsDTO findClinicLibrary(String clinicLibId) throws Hl7Exception;
	
	/**
	 * 校验诊疗库名称是不唯一
	 * @param name
	 * @return
	 * @throws Hl7Exception
	 */
	public ResultsDTO validateClinicLibName(String name) throws Hl7Exception;
}
